#ifndef _LED_DIS_H_
#define _LED_DIS_H_

#ifdef __cplusplus
extern "C"
{
#endif

#include "hal_conf.h"

#undef EXTERN

#ifdef _PLATFORM_C_
#define EXTERN
#else
#define EXTERN extern
#endif

#define POWER_ON_MENU_TIME 1           // 1S
#define SET_MENU_TIME 5                // 5S
#define NO_KEY_PRESS_MENU_FLASH_TIME 1 // 2S

#define MENU_PAGE_POWERON 0  // 开机菜单
#define MENU_PAGE_MAIN 1     // 显示温度菜单
#define MENU_PAGE_SET 2      // 设置温度
#define MENU_PAGE_PASSWORD 3 // 显示温度菜单
#define MENU_PAGE_FACTORY 4  // 工程菜单
#define MENU_PAGE_ERR 5      // 错误报警

#define SONW_LED_OFF 0        // 雪花灯常灭
#define SONW_LED_ON 1         // 雪花灯常亮
#define SONW_LED_FLASH_05HZ 2 // 雪花灯闪0.5HZ
#define SONW_LED_FLASH_1HZ 3  // 雪花灯闪 1HZ

#define SUPER_PASSWORD 98

    typedef enum
    {
        Item_P0,
        Item_C0,
        Item_C1,
        Item_C2,
        Item_C3,
        Item_C4,
        Item_C5,
        Item_C6,
        Item_C7,
        Item_C8,
        Item_C9,
        Item_D1,
        Item_D2,
        Item_A1,
        Item_A2,
        Item_A3,
        Item_F1,
        Item_F2,
        Item_F3

    } FactoryItem;

    extern uint8_t u8_LedMenuPageIndex;           // 当前显示菜单页
    extern uint8_t u8_LedMenuItemIndex;           // 当前菜单中选项序号
    extern uint8_t u8_LedMenuItem;                // 当前菜单中选项内容
    extern volatile uint16_t u16_LedMenuDisTime;  // 菜单显示时间
    extern uint8_t u8_MenuFlahsFlag;              // 当前菜单显示效果，闪烁
    extern uint8_t u8_MenuFlahsCycle;             // 闪烁周期
    extern uint8_t u8_PassWord;                   // 输入密码值
    extern uint8_t u8_NoKeyPressFlashMenuTime;    // 无按键闪的菜单闪
    extern uint8_t u8_SonwLedFlashFlag;           // 雪花图标闪烁标志
    extern uint8_t u8_SonwLedFlashCycle;          // 雪花闪烁周期
    extern signed char s8_DisplayTempValue;       // 显示的温度值
    extern uint8_t u8_DisplayTempValueRenewTime;  // 温度显示更新时间 1S（1HZ）
    extern uint16_t u16_DisplayF2M2ModifyTime;    // F2mode2修正计时
    extern uint8_t u8_DisplayF2M2ModifyFlag;      // F2mode2修正标志
    extern uint8_t u8_DisplayF2M2ModifyTimeState; // F2mode2修正计时

    EXTERN void LedConfig(void);
    EXTERN void MenuDisplayMode1(void);
    EXTERN void MenuDisplayMode2(void);
    EXTERN void MenuTimeOutHandle(void);
    EXTERN void LedDisplayScan(void);
    EXTERN void LedDisPlayControl(void);
    EXTERN void LedMenuPowerOn(void);
    EXTERN void LedMenuMain(void);
    EXTERN void LedMenuSet(void);
    EXTERN void LedMenuErr(void);
    EXTERN void LedMenuPassWord(void);
    EXTERN void LedMenuFactory(void);
    EXTERN void KeyPressMenuNoFlash(void);
    EXTERN void SnowLedFlash(void);
    EXTERN void MenuDisplayMode1(void);
    EXTERN void MenuDisplayMode2(void);
    EXTERN void DisplayValueDeal(void);
#ifdef __cplusplus
}
#endif

#endif
